/**
 * 日期格式化
 * 使用 date | formatDate，默认格式yyyy-MM-dd HH:mm:ss
 * date | formatDate('yyyy年MM月dd日 HH:mm:ss')
 * @date 日期
 * @fmt 格式
 * @return 格式化后的日期
 */
const formatDate = function (dateStr, fmtStr = "yyyy-MM-dd HH:mm:ss") {
  if (!dateStr) {
    return "";
  }
  let date = dateStr;
  let fmt = fmtStr;
  if (typeof date === "string") {
    date = date.replace("T", " ").replace("Z", "");
    date = new Date(date.replace(/-/g, "/"));
  }
  if (typeof date === "number") {
    date = new Date(date);
  }
  const o = {
    "M+": date.getMonth() + 1,
    "d+": date.getDate(),
    "h+": date.getHours() % 12 === 0 ? 12 : date.getHours() % 12,
    "H+": date.getHours(),
    "m+": date.getMinutes(),
    "s+": date.getSeconds(),
    "q+": Math.floor((date.getMonth() + 3) / 3),
    S: date.getMilliseconds()
  };
  const week = {
    0: "\u65e5",
    1: "\u4e00",
    2: "\u4e8c",
    3: "\u4e09",
    4: "\u56db",
    5: "\u4e94",
    6: "\u516d"
  };
  if (/(y+)/.test(fmt)) {
    fmt = fmt.replace(RegExp.$1, `${date.getFullYear()}`.substr(4 - RegExp.$1.length));
  }
  if (/(E+)/.test(fmt)) {
    fmt = fmt.replace(
      RegExp.$1,
      (RegExp.$1.length > 1 ? (RegExp.$1.length > 2 ? "\u661f\u671f" : "\u5468") : "") + week[`${date.getDay()}`]
    );
  }
  for (const k in o) {
    if (new RegExp(`(${k})`).test(fmt)) {
      fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : `00${o[k]}`.substr(`${o[k]}`.length));
    }
  }
  return fmt;
};
export default {
  formatDate
};
